package dao

import (
	"time"
)

// 这是 PmsComment 的全局公开dao对象，被service层调用!
var PmsCommentDao = pmsCommentDao{}

// 这是 pms_comment表 的实体类
type PmsComment struct {
	CollectCount     int32     `json:"collect_count" form:"collect_count" v:"collect_count"`
	Content          string    `json:"content" form:"content" v:"content"`
	CreateTime       time.Time `json:"create_time" form:"create_time" v:"create_time"`
	Id               int64     `json:"id" form:"id" v:"id"`
	MemberIcon       string    `json:"member_icon" form:"member_icon" v:"member_icon"` // 评论用户头像
	MemberIp         string    `json:"member_ip" form:"member_ip" v:"member_ip"`       // 评价的ip
	MemberNickName   string    `json:"member_nick_name" form:"member_nick_name" v:"member_nick_name"`
	Pics             string    `json:"pics" form:"pics" v:"pics"`                                        // 上传图片地址，以逗号隔开
	ProductAttribute string    `json:"product_attribute" form:"product_attribute" v:"product_attribute"` // 购买时的商品属性
	ProductId        int64     `json:"product_id" form:"product_id" v:"product_id"`                      // 这是一个逻辑外键,关联pms_product(id)
	ProductName      string    `json:"product_name" form:"product_name" v:"product_name"`
	ReadCount        int32     `json:"read_count" form:"read_count" v:"read_count"`
	ReplayCount      int32     `json:"replay_count" form:"replay_count" v:"replay_count"`
	ShowStatus       int32     `json:"show_status" form:"show_status" v:"show_status"`
	Star             int32     `json:"star" form:"star" v:"star"` // 评价星数：0-&gt;5

}

// 注意:这是 PmsComment 的私有dao对象，只能在dao层内使用!
type pmsCommentDao struct {
	InsertTemplate func(arg PmsComment) (int64, error)                               //插入一条记录
	UpdateTemplate func(arg PmsComment) (int64, error)                               //更新一条记录
	DeleteTemplate func(id int64) (int64, error)                                     `args:"id"`                         //根据传入的主键删除一条记录
	SelectTemplate func(id int64) (PmsComment, error)                                `args:"id"`                         //根据传入的主键获取一条记录
	List           func(keyword string, pageNum, pageSize int) ([]PmsComment, error) `args:"keyword,page_num,page_size"` //模糊分页查询
}

/*
// 这是 pms_comment 表的Postman测试参数
// 该结构体中的字段就是: 前后端交互的json字段!
type PmsCommentPostman struct {
collect_count
content
create_time
id
member_icon
member_ip
member_nick_name
pics
product_attribute
product_id
product_name
read_count
replay_count
show_status
star

}*/

// 这是 pms_comment 表的批量请求参数
type PmsCommentReq struct {
	List []PmsComment `json:"list" form:"list"`
}
